/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Herramientas;

import Ajedrez.Ajedrez;

/**
 *
 * @author Carlos
 */
public class Conversor {
    
    
    /* Devuelve la letra según la posición numérica de ésta. */
    public static String letra(int n) {
        switch (n) {
            case 0:
                return "A";
            case 1:
                return "B";
            case 2:
                return "C";
            case 3:
                return "D";
            case 4:
                return "E";
            case 5:
                return "F";
            case 6:
                return "G";
            case 7:
                return "H";
        }
        return "";
    }


    /* Convierte el strig de la pieza en la letra que se utiliza en la composición de los movimientos */
    public static String piezaEnLetra(String pieza) {
        // Blancas
        if (pieza.contains("peon")) {
            return "";
        }
        if (pieza.contains("torre")) {
            return "R";
        }
        if (pieza.contains("caballo")) {
            return "N";
        }
        if (pieza.contains("alfil")) {
            return "B";
        }
        if (pieza.contains("reina")) {
            return "Q";
        }
        if (pieza.contains("rey")) {
            return "K";
        }
        return "";
    }

    public static int piezaInt(String pieza) {
        // Blancas
        if (pieza.equalsIgnoreCase("peon")) {
            return Ajedrez.peon;
        }
        if (pieza.equalsIgnoreCase("torre")) {
            return Ajedrez.torre;
        }
        if (pieza.equalsIgnoreCase("caballo")) {
            return Ajedrez.caballo;
        }
        if (pieza.equalsIgnoreCase("alfil")) {
            return Ajedrez.alfil;
        }
        if (pieza.equalsIgnoreCase("reina")) {
            return Ajedrez.reina;
        }
        if (pieza.equalsIgnoreCase("rey")) {
            return Ajedrez.rey;
        }
        // Negras
        if (pieza.equalsIgnoreCase("Npeon")) {
            return Ajedrez.Npeon;
        }
        if (pieza.equalsIgnoreCase("Ntorre")) {
            return Ajedrez.Ntorre;
        }
        if (pieza.equalsIgnoreCase("Ncaballo")) {
            return Ajedrez.Ncaballo;
        }
        if (pieza.equalsIgnoreCase("Nalfil")) {
            return Ajedrez.Nalfil;
        }
        if (pieza.equalsIgnoreCase("Nreina")) {
            return Ajedrez.Nreina;
        }
        if (pieza.equalsIgnoreCase("Nrey")) {
            return Ajedrez.Nrey;
        }

        return Ajedrez.blanco;
    }

    /* Devuelve la letra correspondiente a una columna numérica */
    public static String intToLetraCol(int n) {
        switch (n) {
            case 0:
                return "a";
            case 1:
                return "b";
            case 2:
                return "c";
            case 3:
                return "d";
            case 4:
                return "e";
            case 5:
                return "f";
            case 6:
                return "g";
            case 7:
                return "h";
        }
        return "";
    }

    /* Devuelve el número correspondiente a una columna alfabética */
    public static int letraToIntCol(String s) {

            if(s.equalsIgnoreCase("a"))
                return 0;

            if(s.equalsIgnoreCase("b"))
                return 1;

            if(s.equalsIgnoreCase("c"))
                return 2;

            if(s.equalsIgnoreCase("d"))
                return 3;

            if(s.equalsIgnoreCase("e"))
                return 4;

            if(s.equalsIgnoreCase("f"))
                return 5;

            if(s.equalsIgnoreCase("g"))
                return 6;

            if(s.equalsIgnoreCase("h"))
                return 7;

        return -1;
    }

    /*
    Convierte una pieza en la letra correspondiente para el formato del estado del tablero de crafty.
    */
    public static String piezaParaEstado(String pieza) {
        // Blancas
        if (pieza.equalsIgnoreCase("peon")) {
            return "P";
        }
        if (pieza.equalsIgnoreCase("torre")) {
            return "R";
        }
        if (pieza.equalsIgnoreCase("caballo")) {
            return "N";
        }
        if (pieza.equalsIgnoreCase("alfil")) {
            return "B";
        }
        if (pieza.equalsIgnoreCase("reina")) {
            return "Q";
        }
        if (pieza.equalsIgnoreCase("rey")) {
            return "K";
        }
        // Negras
        if (pieza.equalsIgnoreCase("Npeon")) {
            return "p";
        }
        if (pieza.equalsIgnoreCase("Ntorre")) {
            return "r";
        }
        if (pieza.equalsIgnoreCase("Ncaballo")) {
            return "n";
        }
        if (pieza.equalsIgnoreCase("Nalfil")) {
            return "b";
        }
        if (pieza.equalsIgnoreCase("Nreina")) {
            return "q";
        }
        if (pieza.equalsIgnoreCase("Nrey")) {
            return "k";
        }

        return "";
    }
    
    public static String estadoParaPieza(String pieza) {
        // Blancas
        if (pieza.equals("P")) {
            return "peon";
        }
        if (pieza.equals("R")) {
            return "torre";
        }
        if (pieza.equals("N")) {
            return "caballo";
        }
        if (pieza.equals("B")) {
            return "alfil";
        }
        if (pieza.equals("Q")) {
            return "reina";
        }
        if (pieza.equals("K")) {
            return "rey";
        }
        // Negras
        if (pieza.equals("p")) {
            return "Npeon";
        }
        if (pieza.equals("r")) {
            return "Ntorre";
        }
        if (pieza.equals("n")) {
            return "Ncaballo";
        }
        if (pieza.equals("b")) {
            return "Nalfil";
        }
        if (pieza.equals("q")) {
            return "Nreina";
        }
        if (pieza.equals("k")) {
            return "Nrey";
        }

        return "";
    }

}
